using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Drawing;

namespace Sudoku_v2
{
    public struct SudokuDataCell
    {
        #region Variables

        int column, row;
        bool isFixed;
        char value;
        Color backgroundColor;

        char[] possibilities;



        public Color BackgroundColor
        {
            get { return backgroundColor; }
            set { backgroundColor = value;  }
        }

        public bool IsFixed
        {
            get { return isFixed; }
            set { isFixed = value; }
        }

        public int Column
        {
            get { return column; }
        }

        public int Row
        {
            get { return row; }
        }

        public char[] Possibilities
        {
            get { return possibilities; }
            set { possibilities = value; }
        }

        public char Value
        {
            get { return value; }
            set { this.value = value; }
        }

        #endregion

        #region Constructor

        public SudokuDataCell(int column, int row)
        {
            this.column = column;
            this.row = row;

            this.value = ' ';
            this.possibilities = new char[0];
            this.isFixed = false;
            this.backgroundColor = SudokuConfig.PossibleColors[0]; ;
        }

        public SudokuDataCell(int column, int row, char value, bool isFixed)
            : this(column, row)
        {
            this.value = value;
            this.isFixed = isFixed;
        }


        public SudokuDataCell(int column, int row, Color backgroundColor)
            : this(column, row)
        {
            this.backgroundColor = backgroundColor;
        }

        public SudokuDataCell(int column, int row, char value, bool isFixed, Color backgroundColor)
            : this(column, row,value,isFixed)
        {
            this.backgroundColor = backgroundColor;
        }

        #endregion
    }
}
